// [[ OnflowGenerator File UUID: 3bc3554b29ac413abf73465ce0c58764  ]]
package com.itdct.onflow.system.monitor.qo

import com.itdct.onflow.core.qo.BaseQo
import com.itdct.onflow.core.type.Add
import com.itdct.onflow.core.type.Update
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import org.hibernate.validator.constraints.Length
import java.math.BigDecimal

/**
 * @author DCTANT
 * @date 2025-10-16 09:59:44
 * @version 1.0
 * @description 服务器监控数据上报编辑入参
 */
@Schema(name = "服务器监控数据上报编辑入参", description = "服务器监控数据上报编辑入参")
class SysMachineReportEditQo : BaseQo() {
    // [[ OnflowGenerator Range (- fields -) Start ]]
    @Schema(title = "服务器信息Id", example = "")
    @NotNull(message = "请输入服务器信息Id", groups = [Add::class, Update::class])
    var infoId: Long? = null

    @Schema(title = "服务器id", example = "")
    @NotBlank(message = "请输入服务器id", groups = [Add::class, Update::class])
    @Length(max = 50, message = "服务器id不能超过50个字符", groups = [Add::class, Update::class])
    var machineId: String? = null

    @Schema(title = "CPU使用率", example = "")
    @NotNull(message = "请输入CPU使用率", groups = [Add::class, Update::class])
    var cpuUsage: BigDecimal? = null

    @Schema(title = "CPU频率", example = "")
    @NotNull(message = "请输入CPU频率", groups = [Add::class, Update::class])
    var cpuFreq: BigDecimal? = null

    @Schema(title = "内存使用率", example = "")
    @NotNull(message = "请输入内存使用率", groups = [Add::class, Update::class])
    var memoryUsage: BigDecimal? = null

    @Schema(title = "物理内存使用量", example = "")
    @NotNull(message = "请输入物理内存使用量", groups = [Add::class, Update::class])
    var physicalMemoryInUse: Long? = null

    @Schema(title = "物理内存总量", example = "")
    @NotNull(message = "请输入物理内存总量", groups = [Add::class, Update::class])
    var physicalMemoryTotal: Long? = null

    @Schema(title = "虚拟内存使用量", example = "")
    @NotNull(message = "请输入虚拟内存使用量", groups = [Add::class, Update::class])
    var virtualMemoryInUse: Long? = null

    @Schema(title = "虚拟内存总量", example = "")
    @NotNull(message = "请输入虚拟内存总量", groups = [Add::class, Update::class])
    var virtualMemoryTotal: Long? = null

    @Schema(title = "存储使用率", example = "")
    @NotNull(message = "请输入存储使用率", groups = [Add::class, Update::class])
    var storageUsage: BigDecimal? = null

    @Schema(title = "存储总量", example = "")
    @NotNull(message = "请输入存储总量", groups = [Add::class, Update::class])
    var storageTotal: Long? = null

    @Schema(title = "存储使用量", example = "")
    @NotNull(message = "请输入存储使用量", groups = [Add::class, Update::class])
    var storageInUse: Long? = null

    @Schema(title = "磁盘写入", example = "")
    @NotNull(message = "请输入磁盘写入", groups = [Add::class, Update::class])
    var diskWrite: Long? = null

    @Schema(title = "磁盘读取", example = "")
    @NotNull(message = "请输入磁盘读取", groups = [Add::class, Update::class])
    var diskRead: Long? = null

    @Schema(title = "网络下载", example = "")
    @NotNull(message = "请输入网络下载", groups = [Add::class, Update::class])
    var networkDownload: Long? = null

    @Schema(title = "网络上传", example = "")
    @NotNull(message = "请输入网络上传", groups = [Add::class, Update::class])
    var networkUpload: Long? = null

    @Schema(title = "JVM内存使用率", example = "")
    @NotNull(message = "请输入JVM内存使用率", groups = [Add::class, Update::class])
    var jvmMemoryUsage: BigDecimal? = null

    @Schema(title = "JVM内存总量", example = "")
    @NotNull(message = "请输入JVM内存总量", groups = [Add::class, Update::class])
    var jvmMemoryTotal: Long? = null

    @Schema(title = "JVM内存使用量", example = "")
    @NotNull(message = "请输入JVM内存使用量", groups = [Add::class, Update::class])
    var jvmMemoryInUse: Long? = null

// [[ OnflowGenerator Range (- fields -) End ]]
}